<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <base target="_blank"/>
    <title>js内置对象</title>

    <script>
        /**
         * js中三种对象
         * 1.内置对象--js系统自带的对象(Math、Date、Array、String、Object)
         * 2.自定义对象--自己定义的构造函数创建的对象
         * 3.浏览器对象 BOM
         */

        //Math对象 null的绝对值返回0
        console.debug(Math.abs(null));

        //Date对象
        var dt = new Date();
        console.debug(dt);//返回当前时间

        console.debug(Date.now());//返回当前时间的毫秒

        console.debug(dt.valueOf());//毫秒

        var dt1 = +new Date();//一种特殊的写法,只适用于这个Date的对象
        console.log(dt1);

        //String对象
        var name = "fauks";
        //通过下标改变字符串的值,不可行，因为字符串是不可变的
        name[1] = "AA";
        //遍历字符串
        for (var i = 0; i < name.length; i++) {
            console.debug(name[i]);
        }

        //通过askii构建字符串
        var str = String.fromCharCode(98, 123);
        console.debug(str)

        var desc = "abcdefg";
        //开始的索引，结束的索引，不包含结束
        console.debug(desc.slice(2, 6));
        //开始的索引，截取的个数
        console.debug(desc.substr(2, 2));
        //开始的索引，结束的索引，不包含结束
        console.debug(desc.substring(2, 6));

        //Array对象
        var arr1 = [1, 23, 234];
        //判断对象是否是Array类型
        console.debug(arr1 instanceof Array);
        console.debug(Array.isArray(arr1));


        //基本包装类型

        //普通变量不能直接调用属性或者方法
        //对象可以直接调用属性和方法

        //基本包装类型:本身是基本类型,但是在执行代码的过程中,如果这种类型的变量调用了属性或者是方法,那么这种类型就不再是基本类型了,而是基本包装类型,这个变量也不是普通的变量了,而是基本包装类型对象
        //string number boolean

        //如果是一个对象&&true,那么结果是true
        //如果是一个true&&对象,那么结果是对象

        // var flag=new Boolean(false);
        // var result=true&&flag;
        // console.log(result);


        //var num=10;
        // var num2=Number("10");//转换,没有new---类型转
        // var num3=new Number("10");//基本包装类型

    </script>
</head>
<body>


</body>

</html>